import type { defineComponent } from "vue";
import type { RouteMeta, RouteRecordRaw , RouteRecordRedirectOption} from "vue-router";



export type Component<T extends any = any> = ReturnType<typeof defineComponent> | (() => Promise<typeof import('*.vue')>) | (() => Promise<T>);

export interface WebClinetRouteRecordRaw extends Omit<RouteRecordRaw, 'meta'>{
    name: string;
    meta: RouteMeta;
    component?: Component | string;
    components?: Component;
    children?: WebClinetRouteRecordRaw[] | any;
    props?: Recordable;
    fullpath?: string;
    alwaysShow?: boolean;
    redirect?: RouteRecordRedirectOption;
}